The present invention relates generally to communication networks, and, more particularly, to reducing forwarding states in a communication system.
In today""s information age, communication networks are often used for transporting information from an information provider to one or more information consumers.
One technique for transporting information from an information provider to a group of information consumers over the communication network is known as xe2x80x9cmulticasting.xe2x80x9d Multicasting allows the information provider (referred to hereinafter as a xe2x80x9cmulticast sourcexe2x80x9d) to transmit a single unit of multicast information (referred to hereinafter as a xe2x80x9cmulticast packetxe2x80x9d) simultaneously to all information consumers (referred to hereinafter individually as a xe2x80x9cmulticast clientxe2x80x9d and collectively as xe2x80x9cmulticast clientsxe2x80x9d) in the multicast group, specifically by addressing the multicast packet to the multicast group using a multicast address. The multicast clients monitor the communication network for multicast packets addressed to the multicast group.
In order to distribute multicast packets from a particular multicast source S to the multicast clients for a particular multicast group G, the multicast packet is routed through a number of multicast routers. For convenience, the path through the various multicast routers is referred to as the xe2x80x9cmulticast distribution treexe2x80x9d for the (source, group) pair. The multicast routers utilize a specific multicast routing protocol, such as Multicast Open Shortest-Path First (MOSPF), Distance Vector Multicast Routing Protocol (DVMRP), or Protocol Independent Multicast Dense Mode (PIM-DM), in order to determine the multicast distribution tree for the (source, group) pair.
Each multicast router in the multicast distribution tree for the (source, group) pair maintains state information relating to the (source, group) pair. Specifically, each multicast router maintains a multicast forwarding entry indicating the incoming interface over which packets for the (source, group) pair are accepted as well as the outgoing interface(s) over which the packets for the (source, group) pair are forwarded.
In a typical communication network, it is not uncommon for a multicast group to receive multicast information from multiple multicast sources. In such cases, each multicast router maintains state information for multiple (source, group) pairs. Unfortunately, the number of (source, group) pairs maintained by a multicast router has a direct impact on performance in the multicast communication network. In a MOSPF router, the number of Dijikstra calculations performed by the router is directly proportional to the number of (source, group) pairs maintained by the router. In a DVMRP router, the number of graft/prune message pairs used to join/leave the multicast groups is directly proportional to the number of (source, group) pairs maintained by the router. In a PIM-DM router, the number of graft/prune message pairs used to join/leave the multicast groups is directly proportional to the number of (source, group) pairs maintained by the router.
It is therefore desirable to reduce the number of (source, group) pairs maintained by the multicast routers. Reducing the number of (source, group) pairs in a MOSPF router reduces the number of Dijikstra calculations performed by the MOSPF router, thereby reducing the processing load on the MOSPF router. Reducing the number of (source, group) pairs in a DVMRP router reduces the number of graft/prune message pairs used by the DVMRP router to join/leave a multicast group, thereby reducing the traffic load in the DVMRP network and providing better stability in the DVMRP network. Reducing the number of (source, group) pairs in a PIM-DM router reduces the number of graft/prune message pairs used by the PIM-DM router to join/leave a multicast group, thereby reducing the traffic load in the PIM-DM network and providing better stability without intermittent data loss in the PIM-DM network.
Thus, a need has remained for a technique that reduces the number of (source, group) pairs maintained by the multicast router.
In accordance with one aspect of the invention, a number of (source, group) pairs are aggregated into an aggregate (source, group) pair rooted at a border device in a network domain, and interior devices join the aggregate (source, group) pair by running multicast protocol on the aggregate (source, group) pair and forwarding multicast packets based upon a forwarding entry for the aggregate (source, group) pair.
In accordance with another aspect of the invention, a device that forwards a multicast packet for the (source, group) pair inserts an option field into the multicast packet identifying the forwarding device. Each interior device determines whether to accept the multicast packet based upon at least the forwarding device identified in the option field of the multicast packet.
In accordance with yet another aspect of the invention, a multicast source proxy router determines whether to forward a multicast packet for the (source, group) pair. The multicast source proxy router maintains a list of multicast source proxy routers in the network domain, and elects one of the multicast source proxy routers as the designated multicast source proxy router for the (source, group) pair. The multicast source proxy router forwards multicast packets for the (source, group) pair if the multicast source proxy router determines itself to be the designated multicast source proxy router for the (source, group) pair, and includes in the forwarded multicast packet an option field identifying the multicast source proxy router.
In accordance with still another aspect of the invention, an interior router determines whether to accept a multicast packet from a multicast source proxy router. The interior router maintains a list of multicast source proxy routers in the network domain, and elects one of the multicast source proxy routers as the designated multicast source proxy router for the (source, group) pair. The interior router accepts multicast packets from the designated multicast source proxy router, and drops multicast packets from other multicast source proxy routers.
In accordance with yet another aspect of the invention, a security broker that forwards unencrypted (native) multicast packets inserts an option field into a multicast packet